package com.liao.badminton.code.util;

import com.liao.badminton.code.BaseField;
import com.liao.badminton.context.BaseContextHandler;
import org.apache.commons.lang3.math.NumberUtils;

import java.util.Date;

/**
 * 实体类相关工具类 解决问题： 1、快速对实体的常驻字段，如：crtUser、crtHost、updUser等值快速注入
 */
public class EntityUtils {
    /**
     * 快速将bean的crtUser、crtHost、crtTime、updUser、updHost、updTime附上相关值
     *
     * @param entity 实体bean
     */
    public static <T> void setCreatAndUpdateInfo(BaseField entity) {
        setCreateInfo(entity);
        setUpdatedInfo(entity);
    }

    /**
     * 快速将bean的crtUser、crtHost、crtTime附上相关值
     *
     * @param entity 实体bean
     */
    public static <T  extends BaseField> void setCreateInfo(BaseField entity) {
        Long id = BaseContextHandler.getCurrUserID();
        entity.setCreator(id);
        entity.setCreateTime(new Date());
        // 默认属性

    }

    /**
     * 快速将bean的updUser、updHost、updTime附上相关值
     *
     * @param entity 实体bean
     */
    public static <T> void setUpdatedInfo(BaseField entity) {
        Long id = BaseContextHandler.getCurrUserID();
        // 默认属性
        entity.setUpdater(id);
        entity.setUpdateTime(new Date());
    }

    /**
     * 依据对象的属性数组和值数组对对象的属性进行赋值
     *
     * @param entity 对象
     * @param fields 属性数组
     * @param value  值数组
     */

}
